home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 5
/
Apprentice-Release5.iso
/
Environments
/
PowerMacOberon feb96
/
Source
/
Fonts.Mod
(
.txt
)
< prev
next >
Wrap
Oberon Text
|
1994-07-11
|
1KB
|
31 lines
Syntax10.Scn.Fnt
MODULE Fonts; (* mf 15.3.93 *)
IMPORT
SYS:=SYSTEM, Macintosh, Display;
Name*= ARRAY 32 OF CHAR;
Font*= POINTER TO FontDesc;
FontDesc*= RECORD
name*: Name;
height*, minX*, maxX*, minY*, maxY*: INTEGER;
raster*: Display.Font;
next: Font
END;
Default*: Font;
defaultName: ARRAY 32 OF CHAR;
PROCEDURE This*(name: ARRAY OF CHAR): Font;
VAR fnt: Font; map: Macintosh.FontMapRealPtr; fntNum, fntSize, fntFace: INTEGER;
BEGIN fnt:=Default;
LOOP
IF fnt=NIL THEN EXIT ELSIF fnt.name=name THEN RETURN fnt ELSE fnt:=fnt.next END
END;
Macintosh.GetFontInfo(name, fntNum, fntSize, fntFace);
IF fntNum=0 THEN RETURN Default END;
map:=SYS.VAL (Macintosh.FontMapRealPtr, Macintosh.NewFontMap(fntNum, fntSize, fntFace));
NEW(fnt); COPY(name, fnt.name); fnt.raster:=SYS.VAL(Display.Font, map);
fnt.height:=map.height; fnt.maxX:=map.widMax; fnt.minY:=map.ndescent; fnt.maxY:=map.ascent;
IF Default # NIL THEN fnt.next:=Default.next; Default.next:=fnt END;
RETURN fnt
END This;
BEGIN Macintosh.GetPar("Fonts.DefaultFontName", defaultName); Default:=This(defaultName)
END Fonts.